home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / RIncludes / TextCommon.r < prev    next >
Encoding:
Text File  |  1998-08-17  |  13.8 KB  |  233 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        TextCommon.r
  3.  
  4.      Contains:    TextEncoding-related types and constants, and prototypes for related functions 
  5.  
  6.      Version:    Technology:    Mac OS 8
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17.  
  18. #ifndef __TEXTCOMMON_R__
  19. #define __TEXTCOMMON_R__
  20.  
  21. #ifndef __CONDITIONALMACROS_R__
  22. #include "ConditionalMacros.r"
  23. #endif
  24.  
  25.                                                             /*  Mac OS encodings */
  26. #define kTextEncodingMacRoman             0
  27. #define kTextEncodingMacJapanese         1
  28. #define kTextEncodingMacChineseTrad     2
  29. #define kTextEncodingMacKorean             3
  30. #define kTextEncodingMacArabic             4
  31. #define kTextEncodingMacHebrew             5
  32. #define kTextEncodingMacGreek             6
  33. #define kTextEncodingMacCyrillic         7
  34. #define kTextEncodingMacDevanagari         9
  35. #define kTextEncodingMacGurmukhi         10
  36. #define kTextEncodingMacGujarati         11
  37. #define kTextEncodingMacOriya             12
  38. #define kTextEncodingMacBengali         13
  39. #define kTextEncodingMacTamil             14
  40. #define kTextEncodingMacTelugu             15
  41. #define kTextEncodingMacKannada         16
  42. #define kTextEncodingMacMalayalam         17
  43. #define kTextEncodingMacSinhalese         18
  44. #define kTextEncodingMacBurmese         19
  45. #define kTextEncodingMacKhmer             20
  46. #define kTextEncodingMacThai             21
  47. #define kTextEncodingMacLaotian         22
  48. #define kTextEncodingMacGeorgian         23
  49. #define kTextEncodingMacArmenian         24
  50. #define kTextEncodingMacChineseSimp     25
  51. #define kTextEncodingMacTibetan         26
  52. #define kTextEncodingMacMongolian         27
  53. #define kTextEncodingMacEthiopic         28
  54. #define kTextEncodingMacCentralEurRoman  29
  55. #define kTextEncodingMacVietnamese         30
  56. #define kTextEncodingMacExtArabic         31                    /*  The following use script code 0, smRoman */
  57. #define kTextEncodingMacSymbol             33
  58. #define kTextEncodingMacDingbats         34
  59. #define kTextEncodingMacTurkish         35
  60. #define kTextEncodingMacCroatian         36
  61. #define kTextEncodingMacIcelandic         37
  62. #define kTextEncodingMacRomanian         38
  63. #define kTextEncodingMacCeltic             39
  64. #define kTextEncodingMacGaelic             40                    /*  Beginning in Mac OS 8.5, the following meta-value is used to indicate Unicode in some parts */
  65.                                                             /*  of the Mac OS which previously only expected a Mac OS script code. In some of these places, */
  66.                                                             /*  only 7 bits are available to indicate encoding (script code), so kTextEncodingUnicodeDefault */
  67.                                                             /*  cannot be used. For example, kTextEncodingMacUnicode can be used to indicate Unicode in the */
  68.                                                             /*  7-bit script code field of a Unicode input method's ComponentDescription.componentFlags field; */
  69.                                                             /*  it can also be used to indicate Unicode in the 16-bit script code field of an AppleEvent's */
  70.                                                             /*  typeIntlWritingCode text tag. */
  71. #define kTextEncodingMacUnicode         0x7E                /*  Meta-value, Unicode as a Mac encoding */
  72.                                                             /*  The following use script code 4, smArabic */
  73. #define kTextEncodingMacFarsi             0x8C                /*  Like MacArabic but uses Farsi digits */
  74.                                                             /*  The following use script code 7, smCyrillic */
  75. #define kTextEncodingMacUkrainian         0x98                /*  The following use script code 28, smEthiopic */
  76. #define kTextEncodingMacInuit             0xEC                /*  The following use script code 32, smUnimplemented */
  77. #define kTextEncodingMacVT100             0xFC                /*  VT100/102 font from Comm Toolbox: Latin-1 repertoire + box drawing etc */
  78.                                                             /*  Special Mac OS encodings */
  79. #define kTextEncodingMacHFS             0xFF                /*  Meta-value, should never appear in a table. */
  80.                                                             /*  Unicode & ISO UCS encodings begin at 0x100 */
  81. #define kTextEncodingUnicodeDefault     0x0100                /*  Meta-value, should never appear in a table. */
  82. #define kTextEncodingUnicodeV1_1         0x0101
  83. #define kTextEncodingISO10646_1993         0x0101                /*  Code points identical to Unicode 1.1 */
  84. #define kTextEncodingUnicodeV2_0         0x0103                /*  New location for Korean Hangul */
  85. #define kTextEncodingUnicodeV2_1         0x0103                /*  We treat both Unicode 2.0 and Unicode 2.1 as 2.1 */
  86.                                                             /*  ISO 8-bit and 7-bit encodings begin at 0x200 */
  87. #define kTextEncodingISOLatin1             0x0201                /*  ISO 8859-1 */
  88. #define kTextEncodingISOLatin2             0x0202                /*  ISO 8859-2 */
  89. #define kTextEncodingISOLatin3             0x0203                /*  ISO 8859-3 */
  90. #define kTextEncodingISOLatin4             0x0204                /*  ISO 8859-4 */
  91. #define kTextEncodingISOLatinCyrillic     0x0205                /*  ISO 8859-5 */
  92. #define kTextEncodingISOLatinArabic     0x0206                /*  ISO 8859-6, = ASMO 708, =DOS CP 708 */
  93. #define kTextEncodingISOLatinGreek         0x0207                /*  ISO 8859-7 */
  94. #define kTextEncodingISOLatinHebrew     0x0208                /*  ISO 8859-8 */
  95. #define kTextEncodingISOLatin5             0x0209                /*  ISO 8859-9 */
  96.                                                             /*  MS-DOS & Windows encodings begin at 0x400 */
  97. #define kTextEncodingDOSLatinUS         0x0400                /*  code page 437 */
  98. #define kTextEncodingDOSGreek             0x0405                /*  code page 737 (formerly code page 437G) */
  99. #define kTextEncodingDOSBalticRim         0x0406                /*  code page 775 */
  100. #define kTextEncodingDOSLatin1             0x0410                /*  code page 850, "Multilingual" */
  101. #define kTextEncodingDOSGreek1             0x0411                /*  code page 851 */
  102. #define kTextEncodingDOSLatin2             0x0412                /*  code page 852, Slavic */
  103. #define kTextEncodingDOSCyrillic         0x0413                /*  code page 855, IBM Cyrillic */
  104. #define kTextEncodingDOSTurkish         0x0414                /*  code page 857, IBM Turkish */
  105. #define kTextEncodingDOSPortuguese         0x0415                /*  code page 860 */
  106. #define kTextEncodingDOSIcelandic         0x0416                /*  code page 861 */
  107. #define kTextEncodingDOSHebrew             0x0417                /*  code page 862 */
  108. #define kTextEncodingDOSCanadianFrench     0x0418                /*  code page 863 */
  109. #define kTextEncodingDOSArabic             0x0419                /*  code page 864 */
  110. #define kTextEncodingDOSNordic             0x041A                /*  code page 865 */
  111. #define kTextEncodingDOSRussian         0x041B                /*  code page 866 */
  112. #define kTextEncodingDOSGreek2             0x041C                /*  code page 869, IBM Modern Greek */
  113. #define kTextEncodingDOSThai             0x041D                /*  code page 874, also for Windows */
  114. #define kTextEncodingDOSJapanese         0x0420                /*  code page 932, also for Windows; Shift-JIS with additions */
  115. #define kTextEncodingDOSChineseSimplif     0x0421                /*  code page 936, also for Windows; was EUC-CN, now GBK (EUC-CN extended) */
  116. #define kTextEncodingDOSKorean             0x0422                /*  code page 949, also for Windows; Unified Hangul Code (EUC-KR extended) */
  117. #define kTextEncodingDOSChineseTrad     0x0423                /*  code page 950, also for Windows; Big-5 */
  118. #define kTextEncodingWindowsLatin1         0x0500                /*  code page 1252 */
  119. #define kTextEncodingWindowsANSI         0x0500                /*  code page 1252 (alternate name) */
  120. #define kTextEncodingWindowsLatin2         0x0501                /*  code page 1250, Central Europe */
  121. #define kTextEncodingWindowsCyrillic     0x0502                /*  code page 1251, Slavic Cyrillic */
  122. #define kTextEncodingWindowsGreek         0x0503                /*  code page 1253 */
  123. #define kTextEncodingWindowsLatin5         0x0504                /*  code page 1254, Turkish */
  124. #define kTextEncodingWindowsHebrew         0x0505                /*  code page 1255 */
  125. #define kTextEncodingWindowsArabic         0x0506                /*  code page 1256 */
  126. #define kTextEncodingWindowsBalticRim     0x0507                /*  code page 1257 */
  127. #define kTextEncodingWindowsVietnamese     0x0508                /*  code page 1258 */
  128. #define kTextEncodingWindowsKoreanJohab  0x0510                /*  code page 1361, for Windows NT */
  129.                                                             /*  Various national standards begin at 0x600 */
  130. #define kTextEncodingUS_ASCII             0x0600
  131. #define kTextEncodingJIS_X0201_76         0x0620                /*  JIS Roman and 1-byte katakana (halfwidth) */
  132. #define kTextEncodingJIS_X0208_83         0x0621
  133. #define kTextEncodingJIS_X0208_90         0x0622
  134. #define kTextEncodingJIS_X0212_90         0x0623
  135. #define kTextEncodingJIS_C6226_78         0x0624
  136. #define kTextEncodingGB_2312_80         0x0630
  137. #define kTextEncodingGBK_95             0x0631                /*  annex to GB 13000-93; for Windows 95; EUC-CN extended */
  138. #define kTextEncodingKSC_5601_87         0x0640                /*  same as KSC 5601-92 without Johab annex */
  139. #define kTextEncodingKSC_5601_92_Johab     0x0641                /*  KSC 5601-92 Johab annex */
  140. #define kTextEncodingCNS_11643_92_P1     0x0651                /*  CNS 11643-1992 plane 1 */
  141. #define kTextEncodingCNS_11643_92_P2     0x0652                /*  CNS 11643-1992 plane 2 */
  142. #define kTextEncodingCNS_11643_92_P3     0x0653                /*  CNS 11643-1992 plane 3 (was plane 14 in 1986 version) */
  143.                                                             /*  ISO 2022 collections begin at 0x800 */
  144. #define kTextEncodingISO_2022_JP         0x0820
  145. #define kTextEncodingISO_2022_JP_2         0x0821
  146. #define kTextEncodingISO_2022_CN         0x0830
  147. #define kTextEncodingISO_2022_CN_EXT     0x0831
  148. #define kTextEncodingISO_2022_KR         0x0840                /*  EUC collections begin at 0x900 */
  149. #define kTextEncodingEUC_JP             0x0920                /*  ISO 646, 1-byte katakana, JIS 208, JIS 212 */
  150. #define kTextEncodingEUC_CN             0x0930                /*  ISO 646, GB 2312-80 */
  151. #define kTextEncodingEUC_TW             0x0931                /*  ISO 646, CNS 11643-1992 Planes 1-16 */
  152. #define kTextEncodingEUC_KR             0x0940                /*  ISO 646, KS C 5601-1987 */
  153.                                                             /*  Misc standards begin at 0xA00 */
  154. #define kTextEncodingShiftJIS             0x0A01                /*  plain Shift-JIS */
  155. #define kTextEncodingKOI8_R             0x0A02                /*  Russian internet standard */
  156. #define kTextEncodingBig5                 0x0A03                /*  Big-5 (has variants) */
  157. #define kTextEncodingMacRomanLatin1     0x0A04                /*  Mac OS Roman permuted to align with ISO Latin-1 */
  158. #define kTextEncodingHZ_GB_2312         0x0A05                /*  HZ (RFC 1842, for Chinese mail & news) */
  159.                                                             /*  Other platform encodings */
  160. #define kTextEncodingNextStepLatin         0x0B01                /*  NextStep encoding */
  161.                                                             /*  EBCDIC & IBM host encodings begin at 0xC00 */
  162. #define kTextEncodingEBCDIC_US             0x0C01                /*  basic EBCDIC-US */
  163. #define kTextEncodingEBCDIC_CP037         0x0C02                /*  code page 037, extended EBCDIC (Latin-1 set) for US,Canada... */
  164.                                                             /*  Special value */
  165. #define kTextEncodingMultiRun             0x0FFF                /*  Multi-encoding text with external run info */
  166.                                                             /*  The following are older names for backward compatibility */
  167. #define kTextEncodingMacTradChinese     2
  168. #define kTextEncodingMacRSymbol         8
  169. #define kTextEncodingMacSimpChinese     25
  170. #define kTextEncodingMacGeez             28
  171. #define kTextEncodingMacEastEurRoman     29
  172. #define kTextEncodingMacUninterp         32
  173.  
  174.                                                             /*  Default TextEncodingVariant, for any TextEncodingBase */
  175. #define kTextEncodingDefaultVariant     0                    /*  Variants of kTextEncodingMacRoman                                                         */
  176. #define kMacRomanStandardVariant         0                    /*  standard for Mac OS 8.5, 0xDB is EURO SIGN */
  177. #define kMacRomanCurrencySignVariant     1                    /*  earlier Mac OS versions, 0xDB is CURRENCY SIGN */
  178.                                                             /*  Variants of kTextEncodingMacIcelandic                                                     */
  179. #define kMacIcelandicStandardVariant     0                    /*  0xBB & 0xBC are fem./masc. ordinal indicators */
  180. #define kMacIcelandicTrueTypeVariant     1                    /*  0xBB & 0xBC are fi/fl ligatures */
  181.                                                             /*  Variants of kTextEncodingMacJapanese */
  182. #define kMacJapaneseStandardVariant     0
  183. #define kMacJapaneseStdNoVerticalsVariant  1
  184. #define kMacJapaneseBasicVariant         2
  185. #define kMacJapanesePostScriptScrnVariant  3
  186. #define kMacJapanesePostScriptPrintVariant  4
  187. #define kMacJapaneseVertAtKuPlusTenVariant  5                /*  Variants of kTextEncodingMacArabic */
  188. #define kMacArabicStandardVariant         0                    /*  0xC0 is 8-spoke asterisk, 0x2A & 0xAA are asterisk (e.g. Cairo) */
  189. #define kMacArabicTrueTypeVariant         1                    /*  0xC0 is asterisk, 0x2A & 0xAA are multiply signs (e.g. Baghdad) */
  190. #define kMacArabicThuluthVariant         2                    /*  0xC0 is Arabic five-point star, 0x2A & 0xAA are multiply signs */
  191. #define kMacArabicAlBayanVariant         3                    /*  8-spoke asterisk, multiply sign, Koranic ligatures & parens */
  192.                                                             /*  Variants of kTextEncodingMacFarsi */
  193. #define kMacFarsiStandardVariant         0                    /*  0xC0 is 8-spoke asterisk, 0x2A & 0xAA are asterisk (e.g. Tehran) */
  194. #define kMacFarsiTrueTypeVariant         1                    /*  asterisk, multiply signs, Koranic ligatures, geometric shapes */
  195.                                                             /*  Variants of kTextEncodingMacHebrew */
  196. #define kMacHebrewStandardVariant         0
  197. #define kMacHebrewFigureSpaceVariant     1                    /*  Variants of Unicode & ISO 10646 encodings */
  198. #define kUnicodeNoSubset                 0
  199. #define kUnicodeCanonicalDecompVariant     2                    /*  canonical decomposition; excludes composed characters */
  200.                                                             /*  Variants of Big-5 encoding */
  201. #define kBig5_BasicVariant                 0
  202. #define kBig5_StandardVariant             1                    /*  0xC6A1-0xC7FC: kana, Cyrillic, enclosed numerics */
  203. #define kBig5_ETenVariant                 2                    /*  adds kana, Cyrillic, radicals, etc with hi bytes C6-C8,F9 */
  204.                                                             /*  Unicode variants not yet supported (and not fully defined) */
  205. #define kUnicodeNoCompatibilityVariant     1
  206. #define kUnicodeNoComposedVariant         3
  207. #define kUnicodeNoCorporateVariant         4                    /*  The following are older names for backward compatibility */
  208. #define kJapaneseStandardVariant         0
  209. #define kJapaneseStdNoVerticalsVariant     1
  210. #define kJapaneseBasicVariant             2
  211. #define kJapanesePostScriptScrnVariant     3
  212. #define kJapanesePostScriptPrintVariant  4
  213. #define kJapaneseVertAtKuPlusTenVariant  5                    /*  kJapaneseStdNoOneByteKanaVariant = 6,    // replaced by kJapaneseNoOneByteKanaOption */
  214.                                                             /*  kJapaneseBasicNoOneByteKanaVariant = 7,    // replaced by kJapaneseNoOneByteKanaOption     */
  215. #define kHebrewStandardVariant             0
  216. #define kHebrewFigureSpaceVariant         1
  217. #define kUnicodeMaxDecomposedVariant     2                    /*  replaced by kUnicodeCanonicalDecompVariant */
  218.                                                             /*  The following Japanese variant options were never supported and are now deprecated. */
  219.                                                             /*  In TEC 1.4 and later their functionality is replaced by the Unicode Converter options listed. */
  220. #define kJapaneseNoOneByteKanaOption     0x20                /*  replaced by UnicodeConverter option kUnicodeNoHalfwidthCharsBit */
  221. #define kJapaneseUseAsciiBackslashOption  0x40                /*  replaced by UnicodeConverter option kUnicodeForceASCIIRangeBit */
  222.  
  223.                                                             /*  Default TextEncodingFormat for any TextEncodingBase */
  224. #define kTextEncodingDefaultFormat         0                    /*  Formats for Unicode & ISO 10646 */
  225. #define kUnicode16BitFormat             0
  226. #define kUnicodeUTF7Format                 1
  227. #define kUnicodeUTF8Format                 2
  228. #define kUnicode32BitFormat             3
  229.  
  230.  
  231. #endif /* __TEXTCOMMON_R__ */
  232.  
  233.